rotate: Ensure delta is between [0..2π]
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 6 May 2014 09:43:31 +0000 (11:43 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 23 May 2014 17:54:29 +0000 (19:54 +0200)
gtk/gtkgesturerotate.c

index 952129878f9249e6538caa5cc8075ccd42c23066..ec8b12ae1ce7611b8fcd9d9844ac0629f921d3ea 100644 (file)
@@ -110,15 +110,18 @@ static gboolean
 _gtk_gesture_rotate_check_emit (GtkGestureRotate *gesture)
 {
   GtkGestureRotatePrivate *priv;
-  gdouble angle;
+  gdouble angle, delta;
 
   if (!_gtk_gesture_rotate_get_angle (gesture, &angle))
     return FALSE;
 
   priv = gtk_gesture_rotate_get_instance_private (gesture);
+  delta = angle - priv->initial_angle;
+
+  if (delta < 0)
+    delta += 2 * G_PI;
 
-  g_signal_emit (gesture, signals[ANGLE_CHANGED], 0,
-                 angle, angle - priv->initial_angle);
+  g_signal_emit (gesture, signals[ANGLE_CHANGED], 0, angle, delta);
   return TRUE;
 }